package com.ttbj.bill.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ttbj.api.dto.Page;
import com.ttbj.api.dto.bill.BillCarTypeDto;
import com.ttbj.api.dto.bill.BillTimingDto;
import com.ttbj.bill.bean.po.BillDistance;
import com.ttbj.bill.bean.po.BillPiece;
import com.ttbj.bill.bean.po.BillSecond;
import com.ttbj.bill.bean.po.BillServe;
import com.ttbj.bill.bean.po.BillVehicle;

public interface BillPieceMapper {
	
	/**
	 * 查询按件计费信息
	 * @return
	 */
	public BillPiece queryBillPieceInfo();
	
	/**
	 * 修改按件计费信息
	 * @param billPiece 按件计费信息
	 * @return
	 */
	public int updateBillPieceInfo(BillPiece billPiece);
	
	/**
	 * 查询按次计费信息
	 * @return
	 */
	public BillSecond queryBillSecondInfo();
	
	/**
	 * 修改按次计费信息
	 * @param billSecond 按次计费信息
	 * @return
	 */
	public int updateBillSecondInfo(BillSecond billSecond);
	
	/**
	 * 查询按里程计费规则信息
	 * @return
	 */
	public List<BillDistance> queryBillDistanceInfo();
	
	/**
	 * 通过id更新按里程计费信息
	 * @param billDistance 里程计费对象信息
	 * @return
	 */
	public int updateBillDistanceInfo(BillDistance billDistance);
	
	/**
	 * 查询服务类型权重类型信息
	 * @return
	 */
	public BillServe queryBillServeInfo();
	
	/**
	 * 修改服务类型权重信息
	 * @param billServe 服务类型权重信息
	 * @return
	 */
	public int updateBillServeInfo(BillServe billServe);
	
	/**
	 * 查询车辆类型权重类型信息
	 * @return
	 */
	public BillVehicle queryBillVehicleInfo();
	
	/**
	 * 修改车辆类型权重信息
	 * @param billVehicle 车辆类型权重信息
	 * @return
	 */
	public int updateBillVehicleInfo(BillVehicle billVehicle);
	
	/**
	 * 查询昼夜权重信息
	 * @param page 分页信息
	 * @return
	 */
	public List<BillTimingDto> queryBillTimingInfo(@Param("page") Page page);
	
	/**
	 * 通过类型查询昼夜权重信息
	 * @param timingType 类型标识 0：搬家单 1 ：短运单
	 * @return
	 */
	public BillTimingDto queryBillTimingInfoByType(Integer timingType);
	
	/**
	 * 修改昼夜权重信息
	 * @param billTimingDto 时间设置信息
	 * @return
	 */
	public int updateBillTimingInfo(BillTimingDto billTimingDto);
	
	/**
	 * 查询车辆类型及车型权重信息
	 * @param page 分页信息
	 * @return
	 */
	public List<BillCarTypeDto> queryCarTypeInfo(@Param("page") Page page);
	
	/**
	 * 通过id查询车辆类型和权重信息
	 * @param carTypeId id
	 * @return
	 */
	public BillCarTypeDto queryCarTypeInfoById(Integer carTypeId);
	
	/**
	 * 修改车辆类型和权重信息
	 * @param billCarTypeDto 车辆类型及车型权重信息
	 * @return
	 */
	public int updateCarTypeInfo(BillCarTypeDto billCarTypeDto);
	
	/**
	 * 禁用或启用此车辆类型及权重
	 * @param billCarTypeDto 车辆类型及车型权重信息
	 * @return
	 */
	public int updateCarTypeInfoIsDel(BillCarTypeDto billCarTypeDto);
}
